package com.eastfair.imaster.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.core.base.R;
import com.eastfair.imaster.dto.SpeakerListDetailsDTO;
import com.eastfair.imaster.dto.SpeakerListDetailsPageQuery;
import com.eastfair.imaster.entity.SpeakerListDetails;
import com.eastfair.imaster.vo.SpeakerListDetailsVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 嘉宾列表详情
 * </p>
 *
 * @author zjn
 * @date 2021-09-02
 */
public interface SpeakerListDetailsService extends SuperService<SpeakerListDetails> {

    /**
     * 删除嘉宾列表下所有的嘉宾
     *
     * @param speakerListId 嘉宾列表id
     * @return 是否成功
     */
    Boolean deleteBySpeakerListId(Long speakerListId);

    /**
     * 新增列表嘉宾
     *
     * @param speakerListDetailsDTOList 列表嘉宾集合
     * @return 是否操作成功
     */
    R<Boolean> addSpeakerListDetailsList(List<SpeakerListDetailsDTO> speakerListDetailsDTOList);

    /**
     * 通过id删除列表嘉宾
     *
     * @param id 主键
     * @return 是否操作成功
     */
    R<Boolean> deleteSpeakerListDetails(Long id);

    /**
     * 通过列表id获取分页的嘉宾详情
     * @param params 分页参数及嘉宾列表id
     * @return 分页的嘉宾详情
     */
    R<Page<SpeakerListDetailsVO>> queryPageDetails(PageParams<SpeakerListDetailsPageQuery> params);

    /**
     * 通过id获取嘉宾详情
     *
     * @param speakerListDetailsDTO 嘉宾列表id
     * @return 嘉宾列表详情
     */
    R<List<SpeakerListDetailsVO>> queryListDetails(SpeakerListDetailsDTO speakerListDetailsDTO);
}
